GRAPHICS
========
Berkeley Logo provides traditional Logo turtle graphics with one turtle.
Multiple turtles, dynamic turtles, and collision detection are not supported.
This is the most hardware-dependent part of Logo; some features may exist
on some machines but not others. Nevertheless, the goal has been to make
Logo programs as portable as possible, rather than to take fullest advantage
of the capabilities of each machine. In particular, Logo attempts to scale
the screen so that turtle coordinates [-100 -100] and [100 100] fit on the
graphics window, and so that the aspect ratio is 1:1.
The center of the graphics window (which may or may not be the entire
screen, depending on the machine used) is turtle location [0 0]. Positive
X is to the right; positive Y is up. Headings (angles) are measured in
degrees clockwise from the positive Y axis. (This differs from the common
mathematical convention of measuring angles counterclockwise from the
positive X axis.) The turtle is represented as an isoceles triangle; the
actual turtle position is at the midpoint of the base (the short side).
However, the turtle is drawn one step behind its actual position, so that
the display of the base of the turtle's triangle does not obscure a line
drawn perpendicular to it (as would happen after drawing a square).
Colors are, of course, hardware-dependent. However, Logo provides partial
hardware independence by interpreting color numbers 0 through 7 uniformly
on all computers:
0 black 1 blue 2 green 3 cyan
4 red 5 magenta 6 yellow 7 white
Where possible, Logo provides additional user-settable colors; how many
are available depends on the hardware and operating system environment.
If at least 16 colors are available, Logo tries to provide uniform
initial settings for the colors 8-15:
8 brown 9 tan 10 forest 11 aqua
12 salmon 13 purple 14 orange 15 grey
Logo begins with a black background and white pen.
TURTLE MOTION
-------------
FORWARD dist
FD dist
moves the turtle forward, in the direction that it's facing, by
the specified distance (measured in turtle steps).
BACK dist
BK dist
moves the turtle backward, i.e., exactly opposite to the direction
that it's facing, by the specified distance. (The heading of the
turtle does not change.)
LEFT degrees
LT degrees
turns the turtle counterclockwise by the specified angle, measured
in degrees (1/360 of a circle).
RIGHT degrees
RT degrees
turns the turtle clockwise by the specified angle, measured in
degrees (1/360 of a circle).
SETPOS pos
moves the turtle to an absolute position in the graphics window. The
input is a list of two numbers, the X and Y coordinates.
SETXY xcor ycor
moves the turtle to an absolute position in the graphics window. The
two inputs are numbers, the X and Y coordinates.
SETX xcor
moves the turtle horizontally from its old position to a new
absolute horizontal coordinate. The input is the new X
coordinate.
SETY ycor
moves the turtle vertically from its old position to a new
absolute vertical coordinate. The input is the new Y
coordinate.
SETHEADING degrees
SETH degrees
turns the turtle to a new absolute heading. The input is
a number, the heading in degrees clockwise from the positive
Y axis.
HOME
moves the turtle to the center of the screen. Equivalent to
SETPOS [0 0] SETHEADING 0.
ARC angle radius
draws an arc of a circle, with the turtle at the center, with the
specified radius, starting at the turtle's heading and extending
clockwise through the specified angle. The turtle does not move.
TURTLE MOTION QUERIES
---------------------
POS
outputs the turtle's current position, as a list of two
numbers, the X and Y coordinates.
XCOR (library procedure)
outputs a number, the turtle's X coordinate.
YCOR (library procedure)
outputs a number, the turtle's Y coordinate.
HEADING
outputs a number, the turtle's heading in degrees.
TOWARDS pos
outputs a number, the heading at which the turtle should be
facing so that it would point from its current position to
the position given as the input.
SCRUNCH
outputs a list containing two numbers, the X and Y scrunch
factors, as used by SETSCRUNCH. (But note that SETSCRUNCH
takes two numbers as inputs, not one list of numbers.)
TURTLE AND WINDOW CONTROL
-------------------------
SHOWTURTLE
ST
makes the turtle visible.
HIDETURTLE
HT
makes the turtle invisible. It's a good idea to do this while
you're in the middle of a complicated drawing, because hiding
the turtle speeds up the drawing substantially.
CLEAN
erases all lines that the turtle has drawn on the graphics window.
The turtle's state (position, heading, pen mode, etc.) is not
changed.
CLEARSCREEN
CS
erases the graphics window and sends the turtle to its initial
position and heading. Like HOME and CLEAN together.
WRAP
tells the turtle to enter wrap mode: From now on, if the turtle
is asked to move past the boundary of the graphics window, it
will "wrap around" and reappear at the opposite edge of the
window. The top edge wraps to the bottom edge, while the left
edge wraps to the right edge. (So the window is topologically
equivalent to a torus.) This is the turtle's initial mode.
Compare WINDOW and FENCE.
WINDOW
tells the turtle to enter window mode: From now on, if the turtle
is asked to move past the boundary of the graphics window, it
will move offscreen. The visible graphics window is considered
as just part of an infinite graphics plane; the turtle can be
anywhere on the plane. (If you lose the turtle, HOME will bring
it back to the center of the window.) Compare WRAP and FENCE.
FENCE
tells the turtle to enter fence mode: From now on, if the turtle
is asked to move past the boundary of the graphics window, it
will move as far as it can and then stop at the edge with an
"out of bounds" error message. Compare WRAP and WINDOW.
FILL
fills in a region of the graphics window containing the turtle
and bounded by lines that have been drawn earlier. This is not
portable; it doesn't work for all machines, and may not work
exactly the same way on different machines.
FILLED color instructions
runs the instructions, remembering all points visited by turtle
motion commands, starting *and ending* with the turtle's initial
position. Then draws (ignoring penmode) the resulting polygon,
in the current pen color, filling the polygon with the given color,
which can be a color number or an RGB list. The instruction list
cannot include another FILLED invocation.
LABEL text
takes a word or list as input, and prints the input on the
graphics window, starting at the turtle's position.
SETLABELHEIGHT height
command (wxWidgets only). Takes a positive integer argument and tries
to set the font size so that the character height (including
descenders) is that many turtle steps. This will be different from
the number of screen pixels if SETSCRUNCH has been used. Also, note
that SETSCRUNCH changes the font size to try to preserve this height
in turtle steps. Note that the query operation corresponding to this
command is LABELSIZE, not LABELHEIGHT, because it tells you the width
as well as the height of characters in the current font.
TEXTSCREEN
TS
rearranges the size and position of windows to maximize the
space available in the text window (the window used for
interaction with Logo). The details differ among machines.
Compare SPLITSCREEN and FULLSCREEN.
FULLSCREEN
FS
rearranges the size and position of windows to maximize the space
available in the graphics window. The details differ among machines.
Compare SPLITSCREEN and TEXTSCREEN.
Since there must be a text window to allow printing (including the
printing of the Logo prompt), Logo automatically switches from
fullscreen to splitscreen whenever anything is printed.
In the DOS version, switching from fullscreen to splitscreen loses the
part of the picture that's hidden by the text window. [This design
decision follows from the scarcity of memory, so that the extra memory
to remember an invisible part of a drawing seems too expensive.]
SPLITSCREEN
SS
rearranges the size and position of windows to allow some room for
text interaction while also keeping most of the graphics window
visible. The details differ among machines. Compare TEXTSCREEN
and FULLSCREEN.
SETSCRUNCH xscale yscale
adjusts the aspect ratio and scaling of the graphics display.
After this command is used, all further turtle motion will be
adjusted by multiplying the horizontal and vertical extent of
the motion by the two numbers given as inputs. For example,
after the instruction "SETSCRUNCH 2 1" motion at a heading of
45 degrees will move twice as far horizontally as vertically.
If your squares don't come out square, try this. (Alternatively,
you can deliberately misadjust the aspect ratio to draw an ellipse.)
In wxWidgets only, SETSCRUNCH also changes the size of the text font
used for the LABEL command to try to keep the height of characters
scaled with the vertical turtle step size.
For all modern computers For DOS machines, the scale factors are
initially set according to what the hardware claims the aspect ratio
is, but the hardware sometimes lies. For DOS, the values set by
SETSCRUNCH are remembered in a file (called SCRUNCH.DAT) and are
automatically put into effect when a Logo session begins.
REFRESH
(command) tells Logo to remember the turtle's motions so that they
can be used for high-resolution printing (wxWidgets) or to refresh
the graphics window if it is moved, resized, or overlayed
(non-wxWidgets). This is the default.
NOREFRESH
(command) tells Logo not to remember the turtle's motions, which may
be useful to save time and memory if your program is interactive or
animated, rather than drawing a static picture you'll want to print
later (wxWidgets). In non-wxWidgets versions, using NOREFRESH may
prevent Logo from restoring the graphics image after the window is
moved, resized, or overlayed.
TURTLE AND WINDOW QUERIES
-------------------------
SHOWNP
SHOWN?
outputs TRUE if the turtle is shown (visible), FALSE if the
turtle is hidden. See SHOWTURTLE and HIDETURTLE.
SCREENMODE
outputs the word TEXTSCREEN, SPLITSCREEN, or FULLSCREEN depending
on the current screen mode.
TURTLEMODE
outputs the word WRAP, FENCE, or WINDOW depending on the current
turtle mode.
LABELSIZE
(wxWidgets only) outputs a list of two positive integers, the width
and height of characters displayed by LABEL measured in turtle steps
(which will be different from screen pixels if SETSCRUNCH has been
used). There is no SETLABELSIZE because the width and height of a
font are not separately controllable, so the inverse of this operation
is SETLABELHEIGHT, which takes just one number for the desired height.
PEN AND BACKGROUND CONTROL
--------------------------
The turtle carries a pen that can draw pictures. At any time the pen
can be UP (in which case moving the turtle does not change what's on the
graphics screen) or DOWN (in which case the turtle leaves a trace).
If the pen is down, it can operate in one of three modes: PAINT (so that it
draws lines when the turtle moves), ERASE (so that it erases any lines
that might have been drawn on or through that path earlier), or REVERSE
(so that it inverts the status of each point along the turtle's path).
PENDOWN
PD
sets the pen's position to DOWN, without changing its mode.
PENUP
PU
sets the pen's position to UP, without changing its mode.
PENPAINT
PPT
sets the pen's position to DOWN and mode to PAINT.
PENERASE
PE
sets the pen's position to DOWN and mode to ERASE.
PENREVERSE
PX
sets the pen's position to DOWN and mode to REVERSE.
(This may interact in system-dependent ways with use of color.)
SETPENCOLOR colornumber.or.rgblist
SETPC colornumber.or.rgblist
sets the pen color to the given number, which must be a nonnegative
integer. There are initial assignments for the first 16 colors:
0 black 1 blue 2 green 3 cyan
4 red 5 magenta 6 yellow 7 white
8 brown 9 tan 10 forest 11 aqua
12 salmon 13 purple 14 orange 15 grey
but other colors can be assigned to numbers by the PALETTE command.
Alternatively, sets the pen color to the given RGB values (a list of
three nonnegative numbers less than 100 specifying the percent
saturation of red, green, and blue in the desired color).
SETPALETTE colornumber rgblist
sets the actual color corresponding to a given number, if allowed by
the hardware and operating system. Colornumber must be an integer
greater than or equal to 8. (Logo tries to keep the first 8 colors
constant.) The second input is a list of three nonnegative numbers
less than 100 specifying the percent saturation of red, green, and
blue in the desired color.
SETPENSIZE size
sets the thickness of the pen. The input is either a single positive
integer or a list of two positive integers (for horizontal and
vertical thickness). Some versions pay no attention to the second
number, but always have a square pen.
SETPENPATTERN pattern
sets hardware-dependent pen characteristics. This command is
not guaranteed compatible between implementations on different
machines.
SETPEN list (library procedure)
sets the pen's position, mode, thickness, and hardware-dependent
characteristics according to the information in the input list, which
should be taken from an earlier invocation of PEN.
SETBACKGROUND colornumber.or.rgblist
SETBG colornumber.or.rgblist
set the screen background color by slot number or RGB values.
See SETPENCOLOR for details.
PEN QUERIES
-----------
PENDOWNP
PENDOWN?
outputs TRUE if the pen is down, FALSE if it's up.
PENMODE
outputs one of the words PAINT, ERASE, or REVERSE according to
the current pen mode.
PENCOLOR
PC
outputs a color number, a nonnegative integer that is associated with
a particular color, or a list of RGB values if such a list was used as
the most recent input to SETPENCOLOR. There are initial assignments
for the first 16 colors:
0 black 1 blue 2 green 3 cyan
4 red 5 magenta 6 yellow 7 white
8 brown 9 tan 10 forest 11 aqua
12 salmon 13 purple 14 orange 15 grey
but other colors can be assigned to numbers by the PALETTE command.
PALETTE colornumber
outputs a list of three nonnegative numbers less than 100 specifying
the percent saturation of red, green, and blue in the color associated
with the given number.
PENSIZE
outputs a list of two positive integers, specifying the horizontal
and vertical thickness of the turtle pen. (In some implementations,
including wxWidgets, the two numbers are always equal.)
PENPATTERN
outputs system-specific pen information.
PEN (library procedure)
outputs a list containing the pen's position, mode, thickness, and
hardware-specific characteristics, for use by SETPEN.
BACKGROUND
BG
outputs the graphics background color, either as a slot number or
as an RGB list, whichever way it was set. (See PENCOLOR.)
SAVING AND LOADING PICTURES
---------------------------
SAVEPICT filename
command. Writes a file with the specified name containing the
state of the graphics window, including any nonstandard color
palette settings, in Logo's internal format. This picture can
be restored to the screen using LOADPICT. The format is not
portable between platforms, nor is it readable by other programs.
See EPSPICT to export Logo graphics for other programs.
LOADPICT filename
command. Reads the specified file, which must have been
written by a SAVEPICT command, and restores the graphics
window and color palette settings to the values stored in
the file. Any drawing previously on the screen is cleared.
GRAPHICS ======== Berkeley Logo provides traditional Logo turtle graphics with one turtle. Multiple turtles, dynamic turtles, and collision detection are not supported. This is the most hardware-dependent part of Logo; some features may exist on some machines but not others. Nevertheless, the goal has been to make Logo programs as portable as possible, rather than to take fullest advantage of the capabilities of each machine. In particular, Logo attempts to scale the screen so that turtle coordinates [-100 -100] and [100 100] fit on the graphics window, and so that the aspect ratio is 1:1. The center of the graphics window (which may or may not be the entire screen, depending on the machine used) is turtle location [0 0]. Positive X is to the right; positive Y is up. Headings (angles) are measured in degrees clockwise from the positive Y axis. (This differs from the common mathematical convention of measuring angles counterclockwise from the positive X axis.) The turtle is represented as an isoceles triangle; the actual turtle position is at the midpoint of the base (the short side). However, the turtle is drawn one step behind its actual position, so that the display of the base of the turtle's triangle does not obscure a line drawn perpendicular to it (as would happen after drawing a square). Colors are, of course, hardware-dependent. However, Logo provides partial hardware independence by interpreting color numbers 0 through 7 uniformly on all computers: 0 black 1 blue 2 green 3 cyan 4 red 5 magenta 6 yellow 7 white Where possible, Logo provides additional user-settable colors; how many are available depends on the hardware and operating system environment. If at least 16 colors are available, Logo tries to provide uniform initial settings for the colors 8-15: 8 brown 9 tan 10 forest 11 aqua 12 salmon 13 purple 14 orange 15 grey Logo begins with a black background and white pen. TURTLE MOTION ------------- FORWARD dist FD dist moves the turtle forward, in the direction that it's facing, by the specified distance (measured in turtle steps). BACK dist BK dist moves the turtle backward, i.e., exactly opposite to the direction that it's facing, by the specified distance. (The heading of the turtle does not change.) LEFT degrees LT degrees turns the turtle counterclockwise by the specified angle, measured in degrees (1/360 of a circle). RIGHT degrees RT degrees turns the turtle clockwise by the specified angle, measured in degrees (1/360 of a circle). SETPOS pos moves the turtle to an absolute position in the graphics window. The input is a list of two numbers, the X and Y coordinates. SETXY xcor ycor moves the turtle to an absolute position in the graphics window. The two inputs are numbers, the X and Y coordinates. SETX xcor moves the turtle horizontally from its old position to a new absolute horizontal coordinate. The input is the new X coordinate. SETY ycor moves the turtle vertically from its old position to a new absolute vertical coordinate. The input is the new Y coordinate. SETHEADING degrees SETH degrees turns the turtle to a new absolute heading. The input is a number, the heading in degrees clockwise from the positive Y axis. HOME moves the turtle to the center of the screen. Equivalent to SETPOS [0 0] SETHEADING 0. ARC angle radius draws an arc of a circle, with the turtle at the center, with the specified radius, starting at the turtle's heading and extending clockwise through the specified angle. The turtle does not move. TURTLE MOTION QUERIES --------------------- POS outputs the turtle's current position, as a list of two numbers, the X and Y coordinates. XCOR (library procedure) outputs a number, the turtle's X coordinate. YCOR (library procedure) outputs a number, the turtle's Y coordinate. HEADING outputs a number, the turtle's heading in degrees. TOWARDS pos outputs a number, the heading at which the turtle should be facing so that it would point from its current position to the position given as the input. SCRUNCH outputs a list containing two numbers, the X and Y scrunch factors, as used by SETSCRUNCH. (But note that SETSCRUNCH takes two numbers as inputs, not one list of numbers.) TURTLE AND WINDOW CONTROL ------------------------- SHOWTURTLE ST makes the turtle visible. HIDETURTLE HT makes the turtle invisible. It's a good idea to do this while you're in the middle of a complicated drawing, because hiding the turtle speeds up the drawing substantially. CLEAN erases all lines that the turtle has drawn on the graphics window. The turtle's state (position, heading, pen mode, etc.) is not changed. CLEARSCREEN CS erases the graphics window and sends the turtle to its initial position and heading. Like HOME and CLEAN together. WRAP tells the turtle to enter wrap mode: From now on, if the turtle is asked to move past the boundary of the graphics window, it will "wrap around" and reappear at the opposite edge of the window. The top edge wraps to the bottom edge, while the left edge wraps to the right edge. (So the window is topologically equivalent to a torus.) This is the turtle's initial mode. Compare WINDOW and FENCE. WINDOW tells the turtle to enter window mode: From now on, if the turtle is asked to move past the boundary of the graphics window, it will move offscreen. The visible graphics window is considered as just part of an infinite graphics plane; the turtle can be anywhere on the plane. (If you lose the turtle, HOME will bring it back to the center of the window.) Compare WRAP and FENCE. FENCE tells the turtle to enter fence mode: From now on, if the turtle is asked to move past the boundary of the graphics window, it will move as far as it can and then stop at the edge with an "out of bounds" error message. Compare WRAP and WINDOW. FILL fills in a region of the graphics window containing the turtle and bounded by lines that have been drawn earlier. This is not portable; it doesn't work for all machines, and may not work exactly the same way on different machines. FILLED color instructions runs the instructions, remembering all points visited by turtle motion commands, starting *and ending* with the turtle's initial position. Then draws (ignoring penmode) the resulting polygon, in the current pen color, filling the polygon with the given color, which can be a color number or an RGB list. The instruction list cannot include another FILLED invocation. LABEL text takes a word or list as input, and prints the input on the graphics window, starting at the turtle's position. SETLABELHEIGHT height command (wxWidgets only). Takes a positive integer argument and tries to set the font size so that the character height (including descenders) is that many turtle steps. This will be different from the number of screen pixels if SETSCRUNCH has been used. Also, note that SETSCRUNCH changes the font size to try to preserve this height in turtle steps. Note that the query operation corresponding to this command is LABELSIZE, not LABELHEIGHT, because it tells you the width as well as the height of characters in the current font. TEXTSCREEN TS rearranges the size and position of windows to maximize the space available in the text window (the window used for interaction with Logo). The details differ among machines. Compare SPLITSCREEN and FULLSCREEN. FULLSCREEN FS rearranges the size and position of windows to maximize the space available in the graphics window. The details differ among machines. Compare SPLITSCREEN and TEXTSCREEN. Since there must be a text window to allow printing (including the printing of the Logo prompt), Logo automatically switches from fullscreen to splitscreen whenever anything is printed. In the DOS version, switching from fullscreen to splitscreen loses the part of the picture that's hidden by the text window. [This design decision follows from the scarcity of memory, so that the extra memory to remember an invisible part of a drawing seems too expensive.] SPLITSCREEN SS rearranges the size and position of windows to allow some room for text interaction while also keeping most of the graphics window visible. The details differ among machines. Compare TEXTSCREEN and FULLSCREEN. SETSCRUNCH xscale yscale adjusts the aspect ratio and scaling of the graphics display. After this command is used, all further turtle motion will be adjusted by multiplying the horizontal and vertical extent of the motion by the two numbers given as inputs. For example, after the instruction "SETSCRUNCH 2 1" motion at a heading of 45 degrees will move twice as far horizontally as vertically. If your squares don't come out square, try this. (Alternatively, you can deliberately misadjust the aspect ratio to draw an ellipse.) In wxWidgets only, SETSCRUNCH also changes the size of the text font used for the LABEL command to try to keep the height of characters scaled with the vertical turtle step size. For all modern computers For DOS machines, the scale factors are initially set according to what the hardware claims the aspect ratio is, but the hardware sometimes lies. For DOS, the values set by SETSCRUNCH are remembered in a file (called SCRUNCH.DAT) and are automatically put into effect when a Logo session begins. REFRESH (command) tells Logo to remember the turtle's motions so that they can be used for high-resolution printing (wxWidgets) or to refresh the graphics window if it is moved, resized, or overlayed (non-wxWidgets). This is the default. NOREFRESH (command) tells Logo not to remember the turtle's motions, which may be useful to save time and memory if your program is interactive or animated, rather than drawing a static picture you'll want to print later (wxWidgets). In non-wxWidgets versions, using NOREFRESH may prevent Logo from restoring the graphics image after the window is moved, resized, or overlayed. TURTLE AND WINDOW QUERIES ------------------------- SHOWNP SHOWN? outputs TRUE if the turtle is shown (visible), FALSE if the turtle is hidden. See SHOWTURTLE and HIDETURTLE. SCREENMODE outputs the word TEXTSCREEN, SPLITSCREEN, or FULLSCREEN depending on the current screen mode. TURTLEMODE outputs the word WRAP, FENCE, or WINDOW depending on the current turtle mode. LABELSIZE (wxWidgets only) outputs a list of two positive integers, the width and height of characters displayed by LABEL measured in turtle steps (which will be different from screen pixels if SETSCRUNCH has been used). There is no SETLABELSIZE because the width and height of a font are not separately controllable, so the inverse of this operation is SETLABELHEIGHT, which takes just one number for the desired height. PEN AND BACKGROUND CONTROL -------------------------- The turtle carries a pen that can draw pictures. At any time the pen can be UP (in which case moving the turtle does not change what's on the graphics screen) or DOWN (in which case the turtle leaves a trace). If the pen is down, it can operate in one of three modes: PAINT (so that it draws lines when the turtle moves), ERASE (so that it erases any lines that might have been drawn on or through that path earlier), or REVERSE (so that it inverts the status of each point along the turtle's path). PENDOWN PD sets the pen's position to DOWN, without changing its mode. PENUP PU sets the pen's position to UP, without changing its mode. PENPAINT PPT sets the pen's position to DOWN and mode to PAINT. PENERASE PE sets the pen's position to DOWN and mode to ERASE. PENREVERSE PX sets the pen's position to DOWN and mode to REVERSE. (This may interact in system-dependent ways with use of color.) SETPENCOLOR colornumber.or.rgblist SETPC colornumber.or.rgblist sets the pen color to the given number, which must be a nonnegative integer. There are initial assignments for the first 16 colors: 0 black 1 blue 2 green 3 cyan 4 red 5 magenta 6 yellow 7 white 8 brown 9 tan 10 forest 11 aqua 12 salmon 13 purple 14 orange 15 grey but other colors can be assigned to numbers by the PALETTE command. Alternatively, sets the pen color to the given RGB values (a list of three nonnegative numbers less than 100 specifying the percent saturation of red, green, and blue in the desired color). SETPALETTE colornumber rgblist sets the actual color corresponding to a given number, if allowed by the hardware and operating system. Colornumber must be an integer greater than or equal to 8. (Logo tries to keep the first 8 colors constant.) The second input is a list of three nonnegative numbers less than 100 specifying the percent saturation of red, green, and blue in the desired color. SETPENSIZE size sets the thickness of the pen. The input is either a single positive integer or a list of two positive integers (for horizontal and vertical thickness). Some versions pay no attention to the second number, but always have a square pen. SETPENPATTERN pattern sets hardware-dependent pen characteristics. This command is not guaranteed compatible between implementations on different machines. SETPEN list (library procedure) sets the pen's position, mode, thickness, and hardware-dependent characteristics according to the information in the input list, which should be taken from an earlier invocation of PEN. SETBACKGROUND colornumber.or.rgblist SETBG colornumber.or.rgblist set the screen background color by slot number or RGB values. See SETPENCOLOR for details. PEN QUERIES ----------- PENDOWNP PENDOWN? outputs TRUE if the pen is down, FALSE if it's up. PENMODE outputs one of the words PAINT, ERASE, or REVERSE according to the current pen mode. PENCOLOR PC outputs a color number, a nonnegative integer that is associated with a particular color, or a list of RGB values if such a list was used as the most recent input to SETPENCOLOR. There are initial assignments for the first 16 colors: 0 black 1 blue 2 green 3 cyan 4 red 5 magenta 6 yellow 7 white 8 brown 9 tan 10 forest 11 aqua 12 salmon 13 purple 14 orange 15 grey but other colors can be assigned to numbers by the PALETTE command. PALETTE colornumber outputs a list of three nonnegative numbers less than 100 specifying the percent saturation of red, green, and blue in the color associated with the given number. PENSIZE outputs a list of two positive integers, specifying the horizontal and vertical thickness of the turtle pen. (In some implementations, including wxWidgets, the two numbers are always equal.) PENPATTERN outputs system-specific pen information. PEN (library procedure) outputs a list containing the pen's position, mode, thickness, and hardware-specific characteristics, for use by SETPEN. BACKGROUND BG outputs the graphics background color, either as a slot number or as an RGB list, whichever way it was set. (See PENCOLOR.) SAVING AND LOADING PICTURES --------------------------- SAVEPICT filename command. Writes a file with the specified name containing the state of the graphics window, including any nonstandard color palette settings, in Logo's internal format. This picture can be restored to the screen using LOADPICT. The format is not portable between platforms, nor is it readable by other programs. See EPSPICT to export Logo graphics for other programs. LOADPICT filename command. Reads the specified file, which must have been written by a SAVEPICT command, and restores the graphics window and color palette settings to the values stored in the file. Any drawing previously on the screen is cleared.